﻿using System;
using System.Web.SessionState;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using vudu.Presentacion.Contrato.VU_08_Gestionar_Notas_de_Estudiantes;
using vudu.Presentacion.Presentador.VU_08_Gestionar_Notas_de_Estudiantes;

namespace vudu.Presentacion.Vista.VU_08_Gestionar_Notas_de_Estudiantes
{
    public partial class GestionarNota : System.Web.UI.Page,IContratoGestionarNotas 
    {
        #region Atributos

        private PresentadorGestionarNotas _presentador;

        #endregion

        #region Eventos

        /// <summary>
        /// Evento que se ejecuta cuando inicia la pagina
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            if(Session["TipoRol"] != null)
            {

                _presentador = new PresentadorGestionarNotas(this);
                if (!IsPostBack)
                    _presentador.CargarPagina();
            }
        }

        /// <summary>
        /// Metodo que se ejecuta cuando se selecciona una materia
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void CbMateriaSelectedIndexChanged(object sender, EventArgs e)
        {

            _presentador.CargarSecciones();
        }

        /// <summary>
        /// Metodo que se ejecuta cuando se selecciona una seccion
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void CbSeccionSelectedIndexChanged(object sender, EventArgs e)
        {
            _presentador.CargarEvaluaciones();
        }

        /// <summary>
        /// Metodo que se ejecuta cuando se da click al boton aceptar
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Button2Click(object sender, EventArgs e)
        {
            _presentador.CargarNotas();
        }

        /// <summary>
        /// Metodo que se encarga de tomar el evento click del boton aceptar en la lista de notas
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void AceptarListaNotaClick(object sender, EventArgs e)
        {
            _presentador.Guardar();
        }


        protected void CbEvaluacionSelectedIndexChanged(object sender, EventArgs e)
        {
            _presentador.SeleccionarEvaluacion();
        }
        #endregion
        
        #region Implementation of IContratoGestionarNotas

        public DropDownList Materias
        {
            get { return cbMateria; }
        }

        public DropDownList Secciones
        {
            get { return cbSeccion; }
        }

        public DropDownList Evaluaciones
        {
            get { return cbEvaluacion; }
        }

        public Label Profesor
        {
            get { return lbNombreProfesor; }
        }

        public GridView Notas
        {
            get { return listaMateria; }
        }

        public bool IsPanelListaVisible
        {
            get { return panelBusqueda.Visible; }
            set { panelBusqueda.Visible = value; }
        }

        public bool IsPanelNombreProfVisible
        {
            get { return panelNombreProfesor.Visible; }
            set { panelNombreProfesor.Visible = value; }
        }

        public HttpSessionState Sesion
        {
            get { return Session; }
        }

        public HtmlGenericControl MensajeFinal
        {
            get { return divMensajeFinal; }
        }

        public HtmlGenericControl MensajeError
        {
            get { return divMensajeError; }
        }

        public HtmlGenericControl PanelListaNotas
        {
            get { return panelLista; }
        }

        public Label InformacionUsuario
        {
            get { return infoUsuario; }
        }

        public void Redireccionar(string ruta)
        {
            Response.Redirect(ruta);
        }

        #endregion

        protected void PeriodoAcademicoSelectedIndexChanged(object sender, EventArgs e)
        {
        }


    }
}